using System;
using System.Collections;
using System.ComponentModel;
using System.Runtime.Serialization;


namespace Entities
{
    [Serializable]
    [System.Data.Services.Common.DataServiceKey("ID")]
    public class Contact:EntityBase
    {
        #region Contact Properties
        private System.DateTime? _CreateDate;
		[DataMember] public virtual System.DateTime? CreateDate
		{
			get
			{
				return _CreateDate;
			}
			set
			{
                if (_CreateDate != value)
                {
                    _CreateDate = value;
                    OnPropertyChanged("CreateDate");
                }
			}
		}
        private System.String _FullName;
		[DataMember] public virtual System.String FullName
		{
			get
			{
				return _FullName;
			}
			set
			{
                if (_FullName != value)
                {
                    _FullName = value;
                    OnPropertyChanged("FullName");
                }
			}
		}
        private System.String _Email;
		[DataMember] public virtual System.String Email
		{
			get
			{
				return _Email;
			}
			set
			{
                if (_Email != value)
                {
                    _Email = value;
                    OnPropertyChanged("Email");
                }
			}
		}
        private System.String _Subject;
		[DataMember] public virtual System.String Subject
		{
			get
			{
				return _Subject;
			}
			set
			{
                if (_Subject != value)
                {
                    _Subject = value;
                    OnPropertyChanged("Subject");
                }
			}
		}
        private System.String _Contents;
		[DataMember] public virtual System.String Contents
		{
			get
			{
				return _Contents;
			}
			set
			{
                if (_Contents != value)
                {
                    _Contents = value;
                    OnPropertyChanged("Contents");
                }
			}
		}
        private System.String _Phone;
		[DataMember] public virtual System.String Phone
		{
			get
			{
				return _Phone;
			}
			set
			{
                if (_Phone != value)
                {
                    _Phone = value;
                    OnPropertyChanged("Phone");
                }
			}
		}
        private System.String _Address;
		[DataMember] public virtual System.String Address
		{
			get
			{
				return _Address;
			}
			set
			{
                if (_Address != value)
                {
                    _Address = value;
                    OnPropertyChanged("Address");
                }
			}
		}
        private System.String _IPClient;
		[DataMember] public virtual System.String IPClient
		{
			get
			{
				return _IPClient;
			}
			set
			{
                if (_IPClient != value)
                {
                    _IPClient = value;
                    OnPropertyChanged("IPClient");
                }
			}
		}
        #endregion
        public override bool Equals(object obj)
        {
            if (obj == this) return true;
            if (obj == null) return false;
            if (obj is Contact)
            {
                return (this.ID == (obj as Contact).ID);
            }
            return false;
        }
        public override int GetHashCode()
        {
            return ID.GetHashCode();
        }
    }
}